//
// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.2 生成的
// 请访问 <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a> 
// 在重新编译源模式时, 对此文件的所有修改都将丢失。
// 生成时间: 2020.05.08 时间 11:28:52 AM CST 
//


package com.itsu.integration.demo.service;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import java.util.ArrayList;
import java.util.List;


/**
 * <p>CIO023ReqEmsBody complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="CIO023ReqEmsBody"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="AcNum" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="AcType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="Ccy" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="SignJointlyId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="IdCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="AddrCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="GrpAddrLine" type="{http://service.hisun.com}CIO023ReqGrpAddrLine" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="TaxFlg" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="VipFlg" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="CustSignNum" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="ApplyMastCustSignNum" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="AcOwners" type="{http://service.hisun.com}CIO023ReqAcOwners" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="AcShortName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="StatementName1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="StatementName2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="TrustClientInd" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="AcInd" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="CharacterType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="DmyFFEmsExt" type="{http://service.hisun.com}CIO023ReqDmyFFEmsExt" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="DirSalTeamInfor" type="{http://service.hisun.com}CIO023ReqDirSalTeamInfor" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="PayrollInfor" type="{http://service.hisun.com}CIO023ReqPayrollInfor" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="SuppressPaperStatement" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="EAdvice" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="MaintenanceFeeWaiverEndDate" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="AddressCountryCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="AcctOwnersFatcaInfor" type="{http://service.hisun.com}CIO023ReqAcctOwnersFatcaInfor" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="BusinessIAccountNum" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="DormantChargeFlg" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="IncomeProofFlag" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="Filler" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CIO023ReqEmsBody", propOrder = {
    "acNum",
    "acType",
    "ccy",
    "signJointlyId",
    "idCode",
    "addrCode",
    "grpAddrLine",
    "taxFlg",
    "vipFlg",
    "custSignNum",
    "applyMastCustSignNum",
    "acOwners",
    "acShortName",
    "statementName1",
    "statementName2",
    "trustClientInd",
    "acInd",
    "characterType",
    "dmyFFEmsExt",
    "dirSalTeamInfor",
    "payrollInfor",
    "suppressPaperStatement",
    "eAdvice",
    "maintenanceFeeWaiverEndDate",
    "addressCountryCode",
    "acctOwnersFatcaInfor",
    "businessIAccountNum",
    "dormantChargeFlg",
    "incomeProofFlag",
    "filler"
})
public class CIO023ReqEmsBody {

    @XmlElement(name = "AcNum")
    protected String acNum;
    @XmlElement(name = "AcType")
    protected String acType;
    @XmlElement(name = "Ccy")
    protected String ccy;
    @XmlElement(name = "SignJointlyId")
    protected String signJointlyId;
    @XmlElement(name = "IdCode")
    protected String idCode;
    @XmlElement(name = "AddrCode")
    protected String addrCode;
    @XmlElement(name = "GrpAddrLine")
    protected List<CIO023ReqGrpAddrLine> grpAddrLine;
    @XmlElement(name = "TaxFlg")
    protected String taxFlg;
    @XmlElement(name = "VipFlg")
    protected String vipFlg;
    @XmlElement(name = "CustSignNum")
    protected String custSignNum;
    @XmlElement(name = "ApplyMastCustSignNum")
    protected String applyMastCustSignNum;
    @XmlElement(name = "AcOwners")
    protected List<CIO023ReqAcOwners> acOwners;
    @XmlElement(name = "AcShortName")
    protected String acShortName;
    @XmlElement(name = "StatementName1")
    protected String statementName1;
    @XmlElement(name = "StatementName2")
    protected String statementName2;
    @XmlElement(name = "TrustClientInd")
    protected String trustClientInd;
    @XmlElement(name = "AcInd")
    protected String acInd;
    @XmlElement(name = "CharacterType")
    protected String characterType;
    @XmlElement(name = "DmyFFEmsExt")
    protected List<CIO023ReqDmyFFEmsExt> dmyFFEmsExt;
    @XmlElement(name = "DirSalTeamInfor")
    protected List<CIO023ReqDirSalTeamInfor> dirSalTeamInfor;
    @XmlElement(name = "PayrollInfor")
    protected List<CIO023ReqPayrollInfor> payrollInfor;
    @XmlElement(name = "SuppressPaperStatement")
    protected String suppressPaperStatement;
    @XmlElement(name = "EAdvice")
    protected String eAdvice;
    @XmlElement(name = "MaintenanceFeeWaiverEndDate")
    protected String maintenanceFeeWaiverEndDate;
    @XmlElement(name = "AddressCountryCode")
    protected String addressCountryCode;
    @XmlElement(name = "AcctOwnersFatcaInfor")
    protected List<CIO023ReqAcctOwnersFatcaInfor> acctOwnersFatcaInfor;
    @XmlElement(name = "BusinessIAccountNum")
    protected String businessIAccountNum;
    @XmlElement(name = "DormantChargeFlg")
    protected String dormantChargeFlg;
    @XmlElement(name = "IncomeProofFlag")
    protected String incomeProofFlag;
    @XmlElement(name = "Filler")
    protected String filler;

    /**
     * 获取acNum属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAcNum() {
        return acNum;
    }

    /**
     * 设置acNum属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAcNum(String value) {
        this.acNum = value;
    }

    /**
     * 获取acType属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAcType() {
        return acType;
    }

    /**
     * 设置acType属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAcType(String value) {
        this.acType = value;
    }

    /**
     * 获取ccy属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCcy() {
        return ccy;
    }

    /**
     * 设置ccy属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCcy(String value) {
        this.ccy = value;
    }

    /**
     * 获取signJointlyId属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSignJointlyId() {
        return signJointlyId;
    }

    /**
     * 设置signJointlyId属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSignJointlyId(String value) {
        this.signJointlyId = value;
    }

    /**
     * 获取idCode属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getIdCode() {
        return idCode;
    }

    /**
     * 设置idCode属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setIdCode(String value) {
        this.idCode = value;
    }

    /**
     * 获取addrCode属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAddrCode() {
        return addrCode;
    }

    /**
     * 设置addrCode属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAddrCode(String value) {
        this.addrCode = value;
    }

    /**
     * Gets the value of the grpAddrLine property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the grpAddrLine property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getGrpAddrLine().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CIO023ReqGrpAddrLine }
     * 
     * 
     */
    public List<CIO023ReqGrpAddrLine> getGrpAddrLine() {
        if (grpAddrLine == null) {
            grpAddrLine = new ArrayList<CIO023ReqGrpAddrLine>();
        }
        return this.grpAddrLine;
    }

    /**
     * 获取taxFlg属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getTaxFlg() {
        return taxFlg;
    }

    /**
     * 设置taxFlg属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setTaxFlg(String value) {
        this.taxFlg = value;
    }

    /**
     * 获取vipFlg属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getVipFlg() {
        return vipFlg;
    }

    /**
     * 设置vipFlg属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setVipFlg(String value) {
        this.vipFlg = value;
    }

    /**
     * 获取custSignNum属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCustSignNum() {
        return custSignNum;
    }

    /**
     * 设置custSignNum属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCustSignNum(String value) {
        this.custSignNum = value;
    }

    /**
     * 获取applyMastCustSignNum属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getApplyMastCustSignNum() {
        return applyMastCustSignNum;
    }

    /**
     * 设置applyMastCustSignNum属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setApplyMastCustSignNum(String value) {
        this.applyMastCustSignNum = value;
    }

    /**
     * Gets the value of the acOwners property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the acOwners property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getAcOwners().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CIO023ReqAcOwners }
     * 
     * 
     */
    public List<CIO023ReqAcOwners> getAcOwners() {
        if (acOwners == null) {
            acOwners = new ArrayList<CIO023ReqAcOwners>();
        }
        return this.acOwners;
    }

    /**
     * 获取acShortName属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAcShortName() {
        return acShortName;
    }

    /**
     * 设置acShortName属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAcShortName(String value) {
        this.acShortName = value;
    }

    /**
     * 获取statementName1属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getStatementName1() {
        return statementName1;
    }

    /**
     * 设置statementName1属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setStatementName1(String value) {
        this.statementName1 = value;
    }

    /**
     * 获取statementName2属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getStatementName2() {
        return statementName2;
    }

    /**
     * 设置statementName2属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setStatementName2(String value) {
        this.statementName2 = value;
    }

    /**
     * 获取trustClientInd属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getTrustClientInd() {
        return trustClientInd;
    }

    /**
     * 设置trustClientInd属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setTrustClientInd(String value) {
        this.trustClientInd = value;
    }

    /**
     * 获取acInd属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAcInd() {
        return acInd;
    }

    /**
     * 设置acInd属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAcInd(String value) {
        this.acInd = value;
    }

    /**
     * 获取characterType属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCharacterType() {
        return characterType;
    }

    /**
     * 设置characterType属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCharacterType(String value) {
        this.characterType = value;
    }

    /**
     * Gets the value of the dmyFFEmsExt property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the dmyFFEmsExt property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getDmyFFEmsExt().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CIO023ReqDmyFFEmsExt }
     * 
     * 
     */
    public List<CIO023ReqDmyFFEmsExt> getDmyFFEmsExt() {
        if (dmyFFEmsExt == null) {
            dmyFFEmsExt = new ArrayList<CIO023ReqDmyFFEmsExt>();
        }
        return this.dmyFFEmsExt;
    }

    /**
     * Gets the value of the dirSalTeamInfor property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the dirSalTeamInfor property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getDirSalTeamInfor().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CIO023ReqDirSalTeamInfor }
     * 
     * 
     */
    public List<CIO023ReqDirSalTeamInfor> getDirSalTeamInfor() {
        if (dirSalTeamInfor == null) {
            dirSalTeamInfor = new ArrayList<CIO023ReqDirSalTeamInfor>();
        }
        return this.dirSalTeamInfor;
    }

    /**
     * Gets the value of the payrollInfor property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the payrollInfor property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPayrollInfor().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CIO023ReqPayrollInfor }
     * 
     * 
     */
    public List<CIO023ReqPayrollInfor> getPayrollInfor() {
        if (payrollInfor == null) {
            payrollInfor = new ArrayList<CIO023ReqPayrollInfor>();
        }
        return this.payrollInfor;
    }

    /**
     * 获取suppressPaperStatement属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSuppressPaperStatement() {
        return suppressPaperStatement;
    }

    /**
     * 设置suppressPaperStatement属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSuppressPaperStatement(String value) {
        this.suppressPaperStatement = value;
    }

    /**
     * 获取eAdvice属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getEAdvice() {
        return eAdvice;
    }

    /**
     * 设置eAdvice属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setEAdvice(String value) {
        this.eAdvice = value;
    }

    /**
     * 获取maintenanceFeeWaiverEndDate属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMaintenanceFeeWaiverEndDate() {
        return maintenanceFeeWaiverEndDate;
    }

    /**
     * 设置maintenanceFeeWaiverEndDate属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMaintenanceFeeWaiverEndDate(String value) {
        this.maintenanceFeeWaiverEndDate = value;
    }

    /**
     * 获取addressCountryCode属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAddressCountryCode() {
        return addressCountryCode;
    }

    /**
     * 设置addressCountryCode属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAddressCountryCode(String value) {
        this.addressCountryCode = value;
    }

    /**
     * Gets the value of the acctOwnersFatcaInfor property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the acctOwnersFatcaInfor property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getAcctOwnersFatcaInfor().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CIO023ReqAcctOwnersFatcaInfor }
     * 
     * 
     */
    public List<CIO023ReqAcctOwnersFatcaInfor> getAcctOwnersFatcaInfor() {
        if (acctOwnersFatcaInfor == null) {
            acctOwnersFatcaInfor = new ArrayList<CIO023ReqAcctOwnersFatcaInfor>();
        }
        return this.acctOwnersFatcaInfor;
    }

    /**
     * 获取businessIAccountNum属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getBusinessIAccountNum() {
        return businessIAccountNum;
    }

    /**
     * 设置businessIAccountNum属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setBusinessIAccountNum(String value) {
        this.businessIAccountNum = value;
    }

    /**
     * 获取dormantChargeFlg属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getDormantChargeFlg() {
        return dormantChargeFlg;
    }

    /**
     * 设置dormantChargeFlg属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setDormantChargeFlg(String value) {
        this.dormantChargeFlg = value;
    }

    /**
     * 获取incomeProofFlag属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getIncomeProofFlag() {
        return incomeProofFlag;
    }

    /**
     * 设置incomeProofFlag属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setIncomeProofFlag(String value) {
        this.incomeProofFlag = value;
    }

    /**
     * 获取filler属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getFiller() {
        return filler;
    }

    /**
     * 设置filler属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setFiller(String value) {
        this.filler = value;
    }

}
